﻿using S.Common.Enums.Parturition;
using System.ComponentModel.DataAnnotations;

namespace S.Parturition.Read.API.Dto
{
    /// <summary>
    /// 种母分娩显示Dto
    /// </summary>
    public class ParturitionListDto
    {

        /// <summary>
        /// 种母分娩Id
        /// </summary>
        public int ParturitionId { get; set; }

        /// <summary>
        /// 负责人Id(用户表主键)
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 羊只状态
        /// </summary>
        public bool SheepStatus { get; set; }

        /// <summary>
        /// 可视耳标名称
        /// </summary>
        [MaxLength(50)]
        public string? EarTag { get; set; }

        /// <summary>
        /// 分娩日期
        /// </summary>
        public DateTime DeliveryDate { get; set; }

        /// <summary>
        /// 妊娠天数
        /// </summary>
        public int? GestationDays { get; set; }

        /// <summary>
        /// 分娩难易(使用枚举)
        /// </summary>
        public DifficultyDeliveryEnum DifficultyDelivery { get; set; }

        /// <summary>
        /// 肥羊批次(使用枚举)
        /// </summary>
        public FatSheepEnum FatSheep { get; set; }

        /// <summary>
        /// 母性
        /// </summary>
        public int? Motherhood { get; set; }

        /// <summary>
        /// 泌乳
        /// </summary>
        public int? Lactation { get; set; }

        /// <summary>
        /// 乳房炎
        /// </summary>
        public int? Mastitis { get; set; }

        /// <summary>
        /// 窝号
        /// </summary>
        [MaxLength(50)]
        public string? BroodNumber { get; set; }

        /// <summary>
        /// 窝总羔数
        /// </summary>
        public int LambTotal { get; set; }

        /// <summary>
        /// 活羔总重
        /// </summary>
        public decimal LiveLambWeight { get; set; }

        /// <summary>
        /// 死羔总重
        /// </summary>
        public decimal DeadLambWeight { get; set; }

        /// <summary>
        /// 健羔数
        /// </summary>
        public int? HealthyNumber { get; set; }

        /// <summary>
        /// 弱羔数
        /// </summary>
        public int? LambNumber { get; set; }

        /// <summary>
        /// 畸形数
        /// </summary>
        public int? DeformityNumber { get; set; }

        /// <summary>
        /// 死胎数
        /// </summary>
        public int? StillbirthsNumber { get; set; }

        /// <summary>
        /// 木乃伊数
        /// </summary>
        public int? MummyNumber { get; set; }

        /// <summary>
        /// 畸胎数
        /// </summary>
        public int? FreaksNumber { get; set; }

        /// <summary>
        /// 活羔数
        /// </summary>
        public int? LiveNumber { get; set; }

        /// <summary>
        /// 窝总重
        /// </summary>
        public decimal LitterWeight { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        public bool Sex { get; set; }

        /// <summary>
        /// 当前栋舍
        /// </summary>
        [MaxLength(50)]
        public string? TurnOutBuild { get; set; }

        /// <summary>
        /// 当前栏位
        /// </summary>
        [MaxLength(50)]
        public string? TurnOutHuts { get; set; }

        /// <summary>
        /// 转入栋舍
        /// </summary>
        [MaxLength(50)]
        public string? ShiftToBuild { get; set; }

        /// <summary>
        /// 转入栏位
        /// </summary>
        [MaxLength(50)]
        public string? ShiftToHuts { get; set; }


        #region 审计字段

        /// <summary>
        /// 创建人
        /// </summary>
        [MaxLength(50)]
        public string? CreateBy { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateDate { get; set; }

        /// <summary>
        /// 修改人
        /// </summary>
        [MaxLength(50)]
        public string? UpdateBy { get; set; }

        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime? UpdateDate { get; set; }

        #endregion

        /// <summary>
        /// 审核人
        /// </summary>
        [MaxLength(50)]
        public string? Auditor { get; set; }

        /// <summary>
        /// 审核时间
        /// </summary>
        public DateTime? AuditTime { get; set; }

        /// <summary>
        /// 单据号
        /// </summary>
        [MaxLength(50)]
        public string? DocumentNumber { get; set; }

        /// <summary>
        /// 流水号
        /// </summary>
        [MaxLength(50)]
        public string? SerialNumber { get; set; }

    }
}
